<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	
</body>
</html>
<script>
	//运算符
	//按照操作数的不同，运算符可以分为单目（一元）运算符，双目（二元）运算符，三目（三元）运算符
	//算术运算符 + - * / %
	var a = 9;
	var b = 2;
	var c = a + b;
	document.write("c = " + c + "<br>");


	c = a - b;
	document.write("c = " + c + "<br>");

	c = a * b;
	document.write("c = " + c + "<br>");

	c = a / b;
	document.write("c = " + c + "<br>");
	 

	  //取余运算
	  c = a % b;
	  document.write("c = " + c + "<br>");

	  c = 10 % 11;
	  document.write("c = " + c + "<br>");


	  //类型转换
	  //隐;私类型转换
	  var str = 5;
	  //字符串和数字相加会把数字转化成字符串
	  var r = str + "7";
	  document.write(r + "<br>"); 

	  // * / % - 会把字符串转化成数字
	  r = "5" - 0;
	  document.write(typeof r);
      
      //NAN:Not a Number
      //参与算数运算（除了+）的值如果不为数字（后者数字字符串），那么得到的结果就是NAN
	  r = "helo" * 5;
	  document.write(r + "<br>"); 
	  document.write(typeof r + "<br>"); 

	  //赋值运算符 =
	  //复合赋值运算符
	 // += -= *= /= %=
	 var x = 5;
	 //自增8
     x += 8; // 结果=> x = x + 8; 
     document.write(x + "<br>"); 
      
      //自减2
     x -= 2;
     document.write(x + "<br>"); 

     x *= 5;
     document.write(x + "<br>"); 

     x /= 5;
     document.write(x + "<br>");

     x %= 3;
     document.write(x + "<br>"); 

     //比较运算符
     // >, <, ==,<=,>=,!=,===,!==
     //比较运算都有一个boolean类型的返回值
     x = 5 > 3;
     document.write(x + "<br>");

     x = 6 != 7; 
     document.write(x + "<br>"); 
      
      //==比较时会把运算符左右两边类型转化成一致，再比较
     x = "5" == 5;
     document.write(x + "<br>"); 

     // === !===
     //===(!===)比较运算时会先比较类型，如果类型一致（不一致），再比较值，如果类型不一致（一致）直接返回false
     X = "5" === 5;
     document.write(X + "<br>"); 

     // ++ --
     // ++ 自增运算符
      x = 5;
      x ++;
      document.write(x + "<br>"); 
      ++x;
      document.write(x + "<br>");

      // --自减运算
      x--;
      document.write(x + "<br>");

     //空语句
      ;;;;
      ;;
      ;
      ;
      ;
      ;
      ;;;;;;;;;

      //表达式
      //由数字 变量 运算符组成，表达式都有一个值
      // eg : a, a+b,a*b,a+5,5,a++... 

      //语句由分号结束（表示一个完整的句子）
      //eg: a = 5,b = 8 + 9

      x = 5;
      document.write(x++ + "<br>");
      document.write(x + "<br>");
        
        // ++(--)在前（表达式）取新值，++（--）在后（表达式）取旧值
      x = 5;
      document.write(++x + "<br>");
      document.write(x + "<br>");

      x = 5;
      //运算符的左结合性原则
      // x++ + x-- - --x


      //逻辑运算符
      // &&逻辑与（并且）
      // || 逻辑或（或者）
      // ! 逻辑非（取反）
      var a = 20;
      //逻辑与，运算符两边同时为真才为真（一假即假）
      x = a >= 5 && a < 30;
      document.write(x + "<br>"); 

      var gender = "男";
      var money = 500;
      //逻辑或，两边同时为假才假（一真即真）
      x == gender == "男" || money >= 1000;
      document.write(x + "<br>"); 

      //逻辑非，非真即假，非假即真
      document.write(!!!x + "<br>");

      //短路现象
      //逻辑与，如果运算符左边表达式为假，运算符右边的代码不会被执行
      x = 5;
      var r = x++ > 5 && x-- < 2;
      document.write(x + "<br>"); 
 







 

 








	 
	 



	
	





</script>